{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "43cdeace",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.2.1\n"
     ]
    }
   ],
   "source": [
    "import networkx as nx\n",
    "\n",
    "print(nx.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7096ac66",
   "metadata": {},
   "source": [
    "#### 1.无向图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d843340f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "# 创建一个无向图\n",
    "G = nx.Graph()\n",
    "\n",
    "# 添加节点\n",
    "G.add_nodes_from(['v1', 'v2', 'v3', 'v4', 'v5'])\n",
    "\n",
    "# 添加边\n",
    "G.add_edges_from([('v1', 'v2'), ('v1', 'v3'), ('v2', 'v3'), ('v2', 'v4'), ('v3', 'v4'), ('v4', 'v5')])\n",
    "\n",
    "print(nx.is_directed(G))\n",
    "print(nx.is_weighted(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "bf7eb2d0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABm60lEQVR4nO3deViU5cIG8HuGdQZ3Fk3TXFFTS0XFDQ3Xo6mVGmhiJkquqKgY7lsqibuYmWmZuYAK5hYq5QIouGClhVuGqJVsKvsyzPv9YfBJuMHM8Mxy/67rXNdpZnjfm3NSbp73WWSSJEkgIiIiIiojuegARERERGTYWCiJiIiISCMslERERESkERZKIiIiItIICyURERERaYSFkoiIiIg0wkJJRERERBphoSQiIiIijbBQEhEREZFGWCiJiIiISCMslERERESkERZKIiIiItIICyURERERaYSFkoiIiIg0wkJJRERERBphoSQiIiIijbBQEhEREZFGWCiJiIiISCMslERERESkERZKIiIiItIICyURERERaYSFkoiIiIg0wkJJRERERBphoSQiIiIijbBQEhEREZFGWCiJiIiISCMslERERESkERZKIiIiItIICyURERERaYSFkoiIiIg0wkJJRERERBphoSQiIiIijbBQEhEREZFGWCiJiIiISCMslERERESkERZKIiIiItIICyURERERacRcdAAiIqLSyMxVIT4lE3kqNSzN5ahrawMbK/44IxKJfwKJiEjv3bifjh0xCThxLREJqVmQnnhPBqBONSVcGztgmHMdNKpeUVRMIpMlkyRJevHHiIiIyt+d1CzMCr2MiJvJMJPLUKB+9o+swvddGtph6XstULuashyTEpk2FkoiItJLu88nYP6B36BSS88tkv9lJpfBXC7DwgHNMKRtHR0mJKJCLJRERKR3Ak/cwIpj1zW+zvRejpjo2kgLiYjoebjKm4iI9Mru8wlaKZMAsOLYdQSdT9DKtYjo2ThCSUREeuNOahZ6rD6FXJX6pT6fHf8zMn87idy7v6MgPQVmNlVg/dqbqNzFA+YVqgEArMzlCPfpyjmVRDrEEUoiItIbs0IvQ1WK+ZIPT36D3ITLUDp2QNWeH0P5ehdkXo3A319PQkHGAwCASi1hVuhlXUUmInDbICIi0hM37qcj4mZyqb6marfRsKr9OmSy/x8fUdRz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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化图\n",
    "nx.draw(G, with_labels=True, pos=nx.spring_layout(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cf9e8f1f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('v1', 2), ('v2', 3), ('v3', 3), ('v4', 3), ('v5', 1)]\n",
      "['v1', 'v2', 'v3', 'v4', 'v5']\n",
      "[('v1', 'v2'), ('v1', 'v3'), ('v2', 'v3'), ('v2', 'v4'), ('v3', 'v4'), ('v4', 'v5')]\n"
     ]
    }
   ],
   "source": [
    "print(G.degree()) # 获取各个节点的度\n",
    "print(G.nodes) # 获取节点\n",
    "print(G.edges) # 获取边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "648769ed",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (0, 1)\t1\n",
      "  (0, 2)\t1\n",
      "  (1, 0)\t1\n",
      "  (1, 2)\t1\n",
      "  (1, 3)\t1\n",
      "  (2, 0)\t1\n",
      "  (2, 1)\t1\n",
      "  (2, 3)\t1\n",
      "  (3, 1)\t1\n",
      "  (3, 2)\t1\n",
      "  (3, 4)\t1\n",
      "  (4, 3)\t1\n",
      "[[0 1 1 0 0]\n",
      " [1 0 1 1 0]\n",
      " [1 1 0 1 0]\n",
      " [0 1 1 0 1]\n",
      " [0 0 0 1 0]]\n"
     ]
    }
   ],
   "source": [
    "# 邻接矩阵\n",
    "A = nx.adjacency_matrix(G)\n",
    "print(A)\n",
    "\n",
    "print(A.todense())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "44b9ea37",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[2 0 0 0 0]\n",
      " [0 3 0 0 0]\n",
      " [0 0 3 0 0]\n",
      " [0 0 0 3 0]\n",
      " [0 0 0 0 1]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "# 度矩阵\n",
    "D = np.diag(list(dict(nx.degree(G)).values()))\n",
    "print(D)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "af46094c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['v2', 'v3']"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(G.neighbors('v1'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "46ff8329",
   "metadata": {},
   "source": [
    "#### 2.有环图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6dbe8102",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False\n",
      "False\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABcoUlEQVR4nO3dd3hUZf7+8XtSSUIoISTUQAq9N6kBQm8JIBIRBBsr1rW7rro/17KWXf1a1nXVFRsgEFyQBBAQQQy9ht5bQkujpSdTfn9oZgmhZ8KZSd6v69oLmTmZuSer4ebznPMck81mswkAAAC4SW5GBwAAAIBro1ACAACgTCiUAAAAKBMKJQAAAMqEQgkAAIAyoVACAACgTCiUAAAAKBMKJQAAAMqEQgkAAIAyoVACAACgTCiUAAAAKBMKJQAAAMqEQgkAAIAyoVACAACgTCiUAAAAKBMKJQAAAMqEQgkAAIAyoVACAACgTCiUAAAAKBMKJQAAAMqEQgkAAIAyoVACAACgTCiUAAAAKBMKJQAAAMqEQgkAAIAyoVACAACgTCiUAAAAKBMKJQAAAMqEQgkAAIAy8TA6gDMym83KzMxUWlqa0tPT7b9e/M9paWnKzs6W2WyWxWKx/3r48GFJUpMmTeTu7i53d3d5eHjIx8dHgYGBCgoKUu3ata/4q7e3t8GfHgAA4MaYbDabzegQRrFYLDp06JC2b9+ubdu2adu2bdq+fbuSk5N16bfF29vbXvqKC6C/v788PDzspdHd3V0zZ85UdHS0fH19S5TN3NxcZWRklCqklwoMDFTbtm3Vrl07+68tW7akaAIAAKdVqQrlkSNHtGTJEm3ZskXbt2/Xjh07lJubK0mqU6eOvcQ1bdpUQUFBJaaHVatWlclkcmievLw8++SzuGQeOXLEXnAPHTokSXJ3d1fz5s3Vrl07tWvXTv3791fHjh0dngcAAOBmVOhCabVatWnTJsXHxys+Pl47duyQh4eHWrVqZZ/+FZfIoKAgo+OWkp2drR07dtgnp8W/Zmdnq379+oqOjlZMTIyioqJUpUoVo+MCAIBKqsIVSrPZrMWLFys+Pl4JCQk6ffq0AgICNHz4cI0cOVKDBg2Sv7+/0TFvWlFRkVatWqX4+HjNnz9fR44ckZ+fnwYPHqyYmBiNHj1a1apVMzomAACoRCpMoczLy9NXX32ld999V0eOHFFERIRGjhypmJgY9ejRQx4eFe/6I5vNpt27d9snsOvXr5e/v78eeeQRPfHEE6pTp47REQEAQCXg8oXy3Llz+ve//60PPvhAGRkZGjt2rJ577rlKeY7h8ePH9eGHH+rTTz9VUVGR7rvvPj377LMKDw83OhoAAKjAXLZQ5ufn64033tBHH32kwsJCytNFzp49q08++UQffvihMjMzdeedd+rdd99VvXr1jI4GAAAqIJcslLt27dL48eO1b98+Pfnkk3ryySdZ3r2M4tMAXn/9dRUVFenLL79UTEyM0bEAAEAF41J3yrHZbPrkk0/UuXNnmc1mbdiwQW+//TZl8gp8fHz0yCOPaMeOHerZs6dGjhyphx9+2L5VEgAAgCO4zIQyKytLEyZMUEJCgh599FH94x//kI+Pj9GxXIbNZtNnn32mp556SqGhoZo3b56aNWtmdCwAAFABuEShNJvNGjlypBITEzVjxgxFR0cbHcll7d69W2PGjFFeXp7Wr1+v4OBgoyMBAAAX5xJL3s8884yWLFmiOXPmUCbLqGXLllqyZIkKCgo0atQo5eXlGR0JAAC4OKcvlB9//LE++ugj/fOf/9TgwYONjlMhhISEKD4+Xtu2bdO9994rq9VqdCQAAODCnHrJ++jRo4qIiNDjjz+u999/3+g4Fc7cuXM1ZswYTZ8+XRMmTDA6DgAAcFFOXShfeukl/etf/9KJEyfk5+dndJwKqX///iooKNCqVauMjgIAAFyU0y55FxYWaurUqZo0aRJlshw99NBDWr16tXbs2GF0FAAA4KKctlDGx8crNTVVU6ZMMTpKhTZy5EgFBwfr888/NzoKAABwUU5bKPfu3augoCC1atXK6CgVmpeXlyIjI7V3716jowAAABfltIVSktzcnDpehcH3GQAAlAVNAgAAAGXitIXS09NT2dnZKiwsNDpKhXf27Fl5enoaHQMAALgopy2UI0aMUHZ2tn744Qejo1Rox48f188//6yYmBijowAAABfltIWyVatWioyM1Keffmp0lArtiy++kK+vLxubAwCAm+a0hVL6bY/EFStWsEdiOcnLy9N//vMfTZgwQf7+/kbHAQAALsqp75RTUFCgdu3ayWazad26dapZs6bRkSoMq9WqcePGacGCBdq8ebNatGhhdCQAAOCinHpC6e3trQULFigjI0O3336701+gk1Ng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EYXSgT777DM9+uijMpvNRkcBblpubq6WLVum+Ph4LViwQKmpqQoICNDw4cMVHR2twYMHq1q1akbHBAA4EUYODsS5k6gIfH19FRMTo5iYGFmtVm3cuNF+1fi0adPk6empvn372i/sadSokdGRAQAGY0LpQJ988omeeuopFRQUGB0FKBdHjx7VggULFB8fr19++UVFRUVq06aNvVx26dJFbm5uRscEANxi/OR3ICaUqOgaN26sxx57TEuXLlVGRobi4uLUvn17/fvf/1a3bt1Ur149TZ48WfHx8crNzTU6LgDgFqFQOpDVamU6g0qjWrVqGjt2rL799lulpqbq119/1cSJE7Vq1SqNHDlStWrVUnR0tD7//HOdPHnS6LgAgHLEkrcDffjhh3rxxReVk5NjdBTAUPv377dvSbRq1SpZrVZ17tzZvjTerl07pvkAUIEwTnMgJpTAb5o2bapnnnlGK1euVHp6uqZPn66wsDC9++676tChgxo1aqRHH31Uixcv5pxjAKgAaD8OZLPZmLoAlwgICNCECRM0e/Zspaen66efftLo0aO1aNEiDR06VIGBgRozZoy++eYbpaenGx0XAHATKJQOxIQSuDovLy8NGDBAH374oQ4fPqwdO3boxRdf1MmTJ3XfffcpODhYvXr10jvvvKPdu3dz1ykAcBG0HwdiQglcP5PJpNatW+vPf/6z1q5dq1OnTumLL75Q7dq19dprr6lVq1Zq0qSJnnrqKa1YsUJFRUVGRwYAXAGF0oGYUAI3Lzg4WPfff7/mzZunjIwMLVy4UAMGDFBcXJz69eunoKAgjR8/XjNnztS5c+eMjgsAuAjtx4GYUAKO4ePjo2HDhunTTz/V8ePHtWnTJj3xxBPau3evxo8fr9q1a6tfv3764IMPdOjQIaPjAkClR6F0ICaUgOOZTCZ16tRJf/3rX7VlyxalpKTon//8p6pUqaIXXnhBERERatWqlV544QWtXr1aFovF6MgAUOnQfhyIQgmUvwYNGuihhx7SokWLlJGRoblz56pr16768ssv1atXL9WpU0f33nuv5s6dq+zsbKPjAkClQPtxIJa8gVuratWqGj16tL788kudOnVKa9as0eTJk7Vp0yaNGTNGtWrV0tChQ/XJJ58oJSXF6LgAUGFRKB2ICSVgHHd3d3Xv3l1vvfWWdu7cqUOHDunvf/+7ioqK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WbJEhYWF6tGjh31yWb9+faMjArhB33zzje69917l5OTI17f87vAFoGKgUMKhzp8/r/j4eM2ZM8deLnv27Gk/55JyCbiGVatWKTIyUjt27FDr1q2NjgPAyVEoUW6Ky2VcXJyWLl1qL5exsbEaM2YM5RJwYqdOnVK9evX0ww8/aOTIkUbHAeDkOIcS5aZ69eqaOHGiEhISlJqaqm+++UY1a9bUs88+qwYNGigyMlIfffSRTpw4YXRUAJeoU6eOfH19OY8SwHVhQolb7ty5cyUml2azucTksl69ekZHBCCpbdu26tWrlz755BOjowBwchRKGOrcuXOaP3++5syZYy+XvXr10tixYymXgMFGjx6t3NxcLVmyxOgoAJwcS94wVI0aNXTPPfdowYIFSktL01dffSV/f38988wzatCggXr37q2PP/5Yp06dMjoqUOmwdRCA60WhhNMoLpcLFy5UamqqvvzyS/n7++vpp59W/fr11adPH8olcAuFh4fr2LFjMpvNRkcB4ORY8obTO3v2rObPn6+4uDj99NNPslgsioyMtJ9zWadOHaMjAhXS0qVLNXjwYB06dEhhYWFGxwHgxCiUcClnzpyxn3NZXC579+5tP+eScgk4zqFDhxQREaGlS5dq4MCBRscB4MRY8oZLCQgI0H333adFixYpNTVVU6dOlY+Pj5588knVq1dPffv21SeffKLTp08bHRVweY0aNZKHh4cOHjxodBQATo5CCZdVXC5//PFHpaam6osvvpCPj4+eeOIJ1atXT1FRUZRLoAw8PDzUqFEjLswBcE0seaPCOXPmjH744QfFxcXp559/ltVqLbEsHhwcbHREwGUMHjxYvr6+mjdvntFRADgxCiUqtMzMTP3www+aM2dOiXIZGxur22+/nXIJXMMjjzyiVatWafv27UZHAeDEWPJGhVarVi098MADWrx4sU6fPq3PP/9c3t7eevzxx1WvXj3169dP//73v5Wammp0VMAphYeH6/Dhw2L2AOBqmFCiUiqeXBYvi9tsNvXp08c+uQwKCjI6IuAU5s+fr1GjRunUqVPsogDgiiiUqPQyMjJKLIvbbDb17dtXY8eOpVyi0tu5c6fatGmjxMRE9erVy+g4AJwUS96o9AIDAzV58mQtWbJEp0+f1meffSZ3d3c99thjqlu3rvr376/PPvtM6enpRkcFbrniDc25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CyhXLHkDAFBOfvzxR02aNEne3t6aOXOmIiMjjY4ElAsmlAAAlJOhQ4cqKSlJYWFhioqK0ptvvskSOCokCiUAAOWofv36Wr58uf785z/r5Zdf1tChQ5WWlmZ0LMChWPIGAOAW+emnn3T33XfL3d1d3333nfr27Wt0JMAhmFACAHCLDBw4UElJSWrevLn69++vV199VRaLxehYQJkxoQQA4BazWCx644039OqrryoqKkozZsxQnTp1jI4F3DQKJQAABlmxYoXGjx8vq9WqGTNmaMCAAUZHAm4KS94AABgkKipK27ZtU7t27TRo0CC9/PLLMpvNRscCbhgTSgAADGa1WvX222/rL3/5i3r16qXvvvtO9evXNzoWcN0olAAAOInExETdddddKigo0LRp0zRkyBCjIwHXhSVvAACcRGRkpJKSktSlSxcNHTpUL7zwgoqKioyOBVwTE0oAAJyM1WrVe++9pz//+c/q2rWrZs6cqZCQEKNjAVdEoQQAwEmtXbtW48aNU3Z2tr7++mtFR0cbHQm4LJa8AQBwUt27d9fWrVvVq1cvxcTE6JlnnlFhYaHRsYBSmFACAODkbDabPvzwQz3//PPq0KGDZs2apdDQUKNjAXZMKAEAcHImk0lPPvmkVq9erbS0NHXo0EHz5s0zOhZgR6EEAMBFdOnSRVu3blX//v11++23649//KMKCgqMjgWw5A0AgKux2Wz65JNP9PTTT6tNmzaaPXu2wsPDjY6FSowJJQAALsZkMunRRx/V2rVrde7cOXXo0EFxcXFGx0IlRqEEAMBFdezYUVu2bNGwYcN055136uGHH1Z+fr7RsVAJseQNAICLs9ls+s9//qM//vGPat68ueLi4tS0aVOjY6ESYUIJAICLM5lMevDBB7Vhwwbl5eWpY8eOmjFjhtGxUIlQKAEAqCDatm2rzZs3a/To0br77rs1efJk5ebmGh0LlQBL3gAAVDA2m01fffWVHnvsMYWHhysuLk4tWrQwOhYqMCaUAABUMCaTSffff782btwoq9Wqzp0765tvvjE6FiowCiUAABVUq1attGHDBt1555269957dc899ygnJ8foWKiAWPIGAKASmDZtmh5++GE1bNhQcXFxatOmjdGRUIEwoQQAoBKYOHGiNm3aJE9PT91222364osvxEwJjkKhBACgkmjevLnWr1+vSZMm6Q9/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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 创建一个有环图\n",
    "G = nx.Graph()\n",
    "# 添加节点\n",
    "G.add_nodes_from(['v1', 'v2', 'v3', 'v4', 'v5'])\n",
    "# 添加边\n",
    "G.add_edges_from([('v1', 'v1'), ('v1', 'v2'), ('v1', 'v3'), ('v2', 'v3'), ('v2', 'v4'), ('v3', 'v4'), ('v4', 'v5')])\n",
    "\n",
    "print(nx.is_directed(G))\n",
    "print(nx.is_weighted(G))\n",
    "\n",
    "# 可视化图\n",
    "nx.draw(G, with_labels=True, pos=nx.spring_layout(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ecedc3e6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('v1', 4), ('v2', 3), ('v3', 3), ('v4', 3), ('v5', 1)]\n",
      "['v1', 'v2', 'v3', 'v4', 'v5']\n",
      "[('v1', 'v1'), ('v1', 'v2'), ('v1', 'v3'), ('v2', 'v3'), ('v2', 'v4'), ('v3', 'v4'), ('v4', 'v5')]\n"
     ]
    }
   ],
   "source": [
    "print(G.degree()) # 获取各个节点的度\n",
    "print(G.nodes) # 获取节点\n",
    "print(G.edges) # 获取边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8cb97efb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (0, 0)\t1\n",
      "  (0, 1)\t1\n",
      "  (0, 2)\t1\n",
      "  (1, 0)\t1\n",
      "  (1, 2)\t1\n",
      "  (1, 3)\t1\n",
      "  (2, 0)\t1\n",
      "  (2, 1)\t1\n",
      "  (2, 3)\t1\n",
      "  (3, 1)\t1\n",
      "  (3, 2)\t1\n",
      "  (3, 4)\t1\n",
      "  (4, 3)\t1\n",
      "[[1 1 1 0 0]\n",
      " [1 0 1 1 0]\n",
      " [1 1 0 1 0]\n",
      " [0 1 1 0 1]\n",
      " [0 0 0 1 0]]\n"
     ]
    }
   ],
   "source": [
    "# 邻接矩阵\n",
    "A = nx.adjacency_matrix(G)\n",
    "print(A)\n",
    "\n",
    "print(A.todense())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8d59b608",
   "metadata": {},
   "source": [
    "#### 3.有向图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "a8eb62d5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "# 创建一个有向图\n",
    "G = nx.DiGraph()\n",
    "\n",
    "# 添加节点\n",
    "G.add_nodes_from(['v1', 'v2', 'v3', 'v4', 'v5'])\n",
    "\n",
    "# 添加边\n",
    "G.add_edges_from([('v1', 'v2'), ('v1', 'v3'), ('v2', 'v3'), ('v2', 'v4'), ('v3', 'v4'), ('v4', 'v2'), ('v4', 'v5')])\n",
    "\n",
    "print(nx.is_directed(G))\n",
    "print(nx.is_weighted(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "8762110f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABRs0lEQVR4nO3deViU9cL/8c8Mq6AiILgkiIooKp4SCXfDcp0iNU1NO1raeuw8WfZ7ylZbfOxUp07Wk9VjZUV5cgVzN+mIZgptLgdcUzQXFDQRZBlmfn+UHBFNcQbuGXi/rqurnLnnvj8j12Ufv9/v/b1NdrvdLgAAAOAqmY0OAAAAAPdGoQQAAIBDKJQAAABwCIUSAAAADqFQAgAAwCEUSgAAADiEQgkAAACHUCgBAADgEAolAAAAHEKhBAAAgEMolAAAAHAIhRIAAAAOoVACAADAIRRKAAAAOIRCCQAAAIdQKAEAAOAQCiUAAAAcQqEEAACAQyiUAAAAcAiFEgAAAA6hUAIAAMAhFEoAAAA4hEIJAAAAh1AoAQAA4BAKJQAAABxCoQQAAIBDKJQAAABwCIUSAAAADqFQAgAAwCEUSgAAADiEQgkAAACHUCgBAADgEAolAAAAHEKhBAAAgEMolAAAAHAIhRIAAAAOoVACAADAIZ5GBzBaQbFV+3MLVGK1ydvTrIhgf/n71PnfFgAAgCtWJ5vT7mP5StqcrdSdOcrOK5T9vPdMksKD/JTQLlRj48PVtkkDo2ICAAC4BZPdbrdf/rDa4WBeoaYt3qa0PSfkYTapzHbpr37u/d6RjTVjWIzCgvxqMCkAAID7qDOFcl56tp5N2SGrzf6HRfJCHmaTPM0mTU/sqNFx4dWYEAAAwD3ViUL5Vupuvbp6l8PnmTogSpMT2johEQAAQO1R6+/ynpee7ZQyKUmvrt6lf6ZnO+VcAAAAtUWtHqE8mFeom17/l4qttsseaz2Tp/yMFBUf3qmSo3tkLzmrJmNmyLdl5wrH+XiatXZKX9ZUAgAA/K5Wj1BOW7xN1itcL2nNPaTT3y5QWX6uvENaXvo4m13TFm9zVkQAAAC3V2u3Ddp9LF9pe05c8fHeTSPV4r8+l0e9BirI2qDiX2Ze9Lgym11pe05oT06+IkPZUggAAKDWjlAmbc6Wh9mkgqwNOjDzZhVlVx5VzP9hhQ7MvFklx/fL7OMnj3pXVhA9zCZ9+i1rKQEAAKRaXChTd+aozGZXvTZxMnnXU0HWhkrHFGSmyatxuLxDIqp07jKbXam7cpyUFAAAwL3VykJ5ptiq7LxCSZLZy0f1Iq9XYdZG2W1l5ceUnTmp4oPb5Rfd+6qukZ1bqIJiq1PyAgAAuLNaWSgP5BZUeJyif/veshWeqjDtXbBzg2S3yT+6z1Vdwy5pf26BY0EBAABqgVpZKEsu2CaoXutYmXz8VZiZVv5aYWaavEJbyyvoGqddBwAAoC6qlYXS27Pi1zJ5esmvbTcV7toku61M1vwTKj6UKf+rnO6+1HUAAADqolrZiCKC/WW64DX/6N6ynT2tov0/qjBroyT7Va+flCTT79cBAACo62rlPpT+Pp4KD/LTgd9vzJEk34hrZfZtoILMNJXmHpR3syh5NWp61dcID/aTv0+t/O0DAACoklrbiBLaheqTzQdU9vuTckwenvJr110FmWmylxQpsN/dlT5zauM8SVLpid/2mDyzI1VFh/4tSWrUc3T5cR5mkxKiQqv7KwAAALiFWlsox8aH66NN+yu85hfdR2d+Wi3JJL/2lae7f037tMKvC7auKf/v8wtlmc2ucd3CnZoXAADAXZnsdvuVPezaDd05Z7O+2ZdbPkrpDB5mk3q0DtYnE+Oddk4AAAB3VitvyjlnxrAYeZovvD3HMZ5mk2YMi3HqOQEAANxZrS6UYUF+mp7Y0annfD6xo8KC/Jx6TgAAAHdWqwulJI2OC9fUAVFOOVf4yR81osvVb4QOAABQG9X6QilJkxPaaubwGPl4muVRxSlwD7NJPp5mjWxZoo3vP6OHHnpItXjZKQAAQJXV2ru8LzQ6Llw92zTWtMXblLbnhDzMpj+8Wefc+z1aB2vGsBiFBfmpvdd7mjRpkgIDA/XSSy/VYHoAAADXVWcKpfTbmspPJsZr97F8JW3OVuquHGXnFqpirbTLevKI7ugfp7t7t1FkaIPydyZOnKiTJ0/qscceU2BgoKZOnVrTXwEAAMDl1Optg65EQbFV+3MLVGK1ydvTLPvpHMVER2nx4sUaOnToRT/z5JNPasaMGfq///s/TZw4sWYDAwAAuJg6NUJ5Mf4+nurYPOA/LzQPULt27bRs2bJLFsoXX3xRJ0+e1L333quAgACNGDGiZsICAAC4oDpfKC/GYrFo3rx5stvtMpkq38RjMpn01ltv6dSpU7rjjjsUEBCg/v37G5AUAADAeHXiLu+qslgsOnz4sH788cdLHmM2mzV37lz1799fQ4cO1aZNm2ouIAAAgAuhUF5Er1691KBBAy1btuwPj/Py8tL8+fMVGxurIUOGaNu2bTWUEAAAwHXU+ZtyLmXEiBH65Zdfrmjk8ddff9UNN9ygo0ePasOGDWrTpk0NJAQAAHANjFBegsVi0ebNm3X8+PHLHhsQEKBVq1apYcOG6t+/vw4fPlwDCQEAAFwDhfISBg8eLLvdrpUrV17R8aGhoVqzZo1KS0s1YMAA5ebmVnNCAAAA10ChvISmTZuqa9eul11Heb7w8HCtWbNGx44d05AhQ3TmzJlqTAgAAOAaKJR/wGKxaNWqVbJarVf8mfbt22vlypXKzMzU0KFDVVxcXI0JAQAAjEeh/AMWi0WnTp3SN998U6XPxcbGaunSpdq4caPGjBlTpUIKAADgbiiUfyA2NlZNmjSp0rT3OX379tX8+fOVkpKie+65RzabrRoSAgAAGI9C+QfMZrMGDx58VYVSkm6++WbNnTtXc+fO1dSpU8UOTQAAoDaiUF6GxWLRjh07dODAgav6/NixYzVr1iy9/vrreumll5ycDgAAwHgUysvo37+/PD09r3qUUpL+8pe/6IUXXtDTTz+tt99+24npAAAAjMeTcq5Av379VK9ePYdKpd1u16OPPqrXX39dn376qcaOHevEhAAAAMZhhPIKWCwWrVu3ToWFhVd9DpPJpNdee0133XWXxo8fry+//NKJCQEAAIxDobwCFotFRUVFSk1Ndeg8JpNJ7733nm699VaNHDlS//rXv5yUEAAAwDgUyivQrl07tW7d2qEp73M8PT312WefqWfPnrrlllv0/fffOyEhAACAcSiUV8BkMslisWjZsmVO2frHx8dHS5YsUYcOHTRw4EBlZWU5ISUAAIAxKJRXyGKxKDs7Wzt27HDK+erXr6/ly5erSZMm6t+/v7Kzs51yXgAAgJpGobxCffv2lZ+fn1Omvc8JCgrS6tWr5eXlpf79+ysnJ8dp5wYAAKgpFMor5Ovrq5tuusmphVKSmjdvrjVr1uj06dMaNGiQfv31V6eeHwAAoLpRKKvAYrHom2++0cmTJ5163jZt2mj16tXav3+/brnlFoe2JwIAAKhpFMoqGDx4sMrKyrRq1SqnnzsmJkbLly/Xd999p5EjR6qkpMTp1wAAAKgOFMoqCAsLU+fOnZ0+7X1Ot27dtGTJEq1du1bjx49XWVlZtVwHAADAmSiUVWSxWLRixYpqK3v9+/fX559/ri+++EIPPfSQU7YpAgAAqE4UyiqyWCzKzc3Vli1bqu0aw4cP1/vvv6933nlHTz31VLVdBwAAwBk8jQ7gbrp166agoCAtW7ZM3bt3r7br3H333Tp58qSmTp2qwMBATZ06tdquBQAA4AhGKKvIw8NDgwYNqrZ1lOd79NFH9eSTT+qxxx7TnDlzqv16AAAAV4MRyqtgsVj02Wef6ZdfftE111xTrdd64YUXlJeXp3vvvVcBAQEaMWJEtV4PAACgqhihvAqDBg2S2WzW8uXLq/1aJpNJb731lkaNGqU77rhDq1evrvZrAgAAVIXJzm3EV6VXr15q3LixlixZUiPXKy0t1bBhw5Samqq1a9dW6/pNAACAqmCE8ipZLBatXbtWxcXFNXI9Ly8vffHFF4qNjdWQIUO0devWGrkuAADA5VAor5LFYlFBQYHWr19fY9f08/PT0qVL1apVKw0cOFB79uypsWsDAABcCoXyKsXExKhFixY1crf3+QICArRy5Uo1bNhQ/fv31y+//FKj1wcAALgQhfIqmUwmWSyWGi+UkhQaGqo1a9aorKxMAwYMUG5ubo1nAAAAOIdC6QCLxaI9e/Zo165dNX7t8PBwrVmzRjk5ORoyZIjy8/NrPAMAAIBEoXRIv3795OPjY8gopSS1a9dOq1atUmZmpoYOHaqioiJDcgAAgLqNQukAf39/JSQkGFYoJalLly768ssv9c0332jMmDGyWq2GZQEAAHUThdJBFotF69evN3TKuU+fPlqwYIG+/PJL3XPPPbLZbLLb7Xrrrbf05ZdfGpYLAADUDWxs7qCff/5ZrVu31sKFCzV8+HBDs3z22WcaN26c/vrXv6qkpETvvPOOoqOj9e9//9vQXAAAoHajUDpBhw4d1L17d82ZM8foKHrrrbf00EMPVXjtwIEDCg8PNygRAACo7ZjydgKLxaLly5fLZrMZmqOwsLDS88VNJpOhazwBAEDtR6F0AovFoqNHj+qHH34wNMeDDz6oFStWVHp96dKlf/i5gmKrdhz+VT9kn9SOw7+qoJgbewAAwJXzNDpAbdCzZ08FBARo2bJlio2NNSzHHXfcoczMTG3ZskUeHh4qKyuT3W7XmjVrVFhYKD8/v/Jjdx/LV9LmbKXuzFF2XqHOX/dgkhQe5KeEdqEaGx+utk0a1Ph3AQAA7oM1lE5y++2368CBA9q8ebPRUbRr1y7NnTtXc+bM0bFjxyRJs2fP1n333aeDeYWatnib0vackIfZpDLbpX/8597vHdlYM4bFKCzI75LHAgCAuotC6SRz587VXXfdpaNHjyo0NNToOJKksrIyrVq1StOnT9err76qX3xb6tmUHbLa7H9YJC/kYTbJ02zS9MSOGh3HzT0AAKAiCqWT5OTkqGnTpvrwww81fvx4o+NU8lbqbr262vFHRE4dEKXJCW2dkAgAANQW3JTjJKGhoYqLi3PJO6rnpWc7pUxK0qurd+mf6dlOORcAAKgduCnHiSwWi1577TWVlpbKy8vL6DiSpIN5hXo2ZccVHXt2/48q2PG1ig/9W2X5ufLwbyTfln9SQJ9x8qwfVH7cMyk71KNNY9ZUAgAASYxQOpXFYtHp06e1ceNGo6OUm7Z4m6xXuF7y1NcfqTh7m/yiuiuw/73y69BHBVlpOvLhX1V25mT5cVabXdMWb6uuyAAAwM0wQulE1113nZo2baply5bphhtuMDqOdh/LV9qeE1d8fGC/SfIJ6yCT6T9/z6jXKlbHPntcp7//UoF97pQkldnsSttzQnty8hUZypZCAADUdYxQOpHZbNaQIUNcZh1l0uZseZhNKsjaoAMzb1ZRduVRxfwfVujAzJtVcny/fMM7VSiTkuQb3klm3waynjhY4XUPs0mffstaSgAAQKF0OovFoszMTP38889GR1HqzhyV2eyq1yZOJu96KsjaUOmYgsw0eTUOl3dIxEXPYSs5K1vpWZn9GlZ4vcxmV+qunOqIDQAA3AyF0sn69+8vLy8vw0cpzxRblZ1XKEkye/moXuT1KszaKLutrPyYsjMnVXxwu/yie1/yPKfTk6Uyq/zaVz4mO7eQxzQCAAAKpbM1aNBAffr0MbxQHsgtqPA4Rf/2vWUrPFVh2rtg5wbJbpN/dJ+LnqMoe7t+3fi5/Nr3Vr2IP1V63y5pf26Bk5MDAAB3Q6GsBhaLRampqSooMK5slVhtFX5dr3WsTD7+KsxMK3+tMDNNXqGt5RV0TaXPl+Ye1PFFL8mrcUsFD37oiq8DAADqHgplNbBYLCouLta6desMy+DtWfFHa/L0kl/bbirctUl2W5ms+SdUfChT/heZ7raePq5j/3xGZh8/hd7+nMw+l95v8sLrAACAuoc2UA2ioqIUGRlp6LR3RLC/TBe85h/dW7azp1W0/0cVZm2UZK+0frLs7Gkd++fTsltLFTrq+Qobml/I9Pt1AABA3UahrCbntg8y6lHp/j6eCr/gSTa+EdfK7NtABZlpKshcL+9mUfJq1LT8fVtJkXK+eE5l+bkKvf25i06Fny882E/+PmxlCgBAXUehrCYWi0WHDh3Stm3GPVEmoV2oPMz/Gac0eXjKr113Fe7cqJLDuypNd59Y+qpKjuySX/teKj1xUGe2p5b/U7hrU4VjPcwmJUSF1sj3AAAAro3hpWrSt29f+fv7a9myZercubMhGcbGh+ujTfsrvOYX3UdnflotyVRpK6CSY/skSQVb16hg65oK73k0DJVfVPfyX5fZ7BrXLbxacgMAAPdishs1J1sHDB06VCdOnNCGDZU3FK8pd87ZrG/25arsCp/nfSXsNquKs7cpdMcXuuGGGxQSElL+T9OmTdW9e3eZzQx+AwBQV1Aoq9H777+v+++/Xzk5OQoODjYkw8G8Qt30+r9U7MTtfbw9pJ/fniTrqaOSJA8PD5WV/WfD9Hnz5mnUqFFOux4AAHBtDCNVoyFDhshms2nVqlWGZQgL8tP0xI5OPecLt8Zo0cfvlf/6XJk0mUwKCQnR4MGDnXo9AADg2iiU1eiaa67Rtddea/hTc0bHhWvqgCinnOuxAe00Ki5ct9xyi2677TZ5eHiUv2e32zVkyBA1bNjwD84AAABqGwplNbNYLFq5cmWFKWEjTE5oq5nDY+Tjaa5w5/eV8DCb5ONp1svDY/SXhMjy12fNmiVfX19Jktlsltls1ty5c9WmTRtt377dqfkBAIDrolBWM4vFory8PH377bdGR9HouHCtndJXPVr/tp7zcsXy3Ps9Wgdr7ZS+GhVX8a7uZs2a6ZVXXpH0W6HcunWrxo8fr59//lkxMTEaPXq0SkpKquGbAAAAV8JNOdWsrKxMTZs21T333KMZM2YYHafc7mP5StqcraTUH1Tq00gynbdfpX7btDwhKlTjuoUrMrTBJc9js9k0YsQI9erVS4888ogkaefOnbr11lu1c+dO+fn56e2339aECROq9wsBAADDUChrwJ133qmtW7fqp59+MjpKJS1atNDY8Xfrz395VCVWm7w9zYoI9nfKE3Dee+89Pfzwwzp79qw6dOigpUuXqnXr1k5IDQAAXAlT3jXAYrFo69atOnTokNFRKjh9+rR++eUXxURHqWPzAF0XHqiOzQOc9jjFe++9V3l5eRo+fLj+/e9/KzIyUpMmTTJ8PSkAAHAuCmUNGDhwoDw8PLR8+XKjo1Swc+dOSVJ0dHS1XcPX11cLFy7UDz/8oPDwcM2ZM0dBQUFauHBhtV0TAADULAplDQgMDFSPHj0M3z7oQpmZmZKkdu3aVfu1rr32Wu3fv1+vvvqqioqKNGLECHXt2lWHDx+u9msDAIDqRaGsIRaLRWvXrlVRUZHRUcplZWUpLCxM9evXr7FrPvroo8rNzdXAgQP13XffKSwsTFOmTJHN5rwn+QAAgJpFoawhFotFhYWF+te//mV0lHKZmZlq3759jV+3fv36WrlypTZs2KAmTZrojTfeUEhIiKFPFAIAAFePQllDOnbsqPDwcJea9s7KyqrW9ZOX07NnTx0+fFhPP/20Tp8+rUGDBql3797Ky8szLBMAAKg6CmUNMZlMslgsWrZsmVxhp6bS0lLt2bPHkBHKCz3//PM6duyYevfuXT5q+cwzzxgdCwAAXCEKZQ2yWCzat29f+d3VRtq7d6+sVquhI5TnCwoK0vr167Vq1SoFBATohRdeULNmzbRx40ajowEAgMugUNaghIQE+fr6usS097k7vF1hhPJ8AwYMUE5OjqZMmaKcnBz16tVLgwYN0pkzZ4yOBgAALoFCWYP8/PzUr18/lyiUWVlZatSokZo0aWJ0lErMZrP+/ve/6+DBg4qNjdWqVasUHBys1157zehoAADgIiiUNcxisSgtLU2//vqroTkyMzMVHR0t03nP8HY1zZs3V0ZGhhYsWCBfX19NnTpVERER+vHHH42OBgAAzkOhrGEWi0VWq1Vr1qwxNEdWVpbLTXdfym233aaTJ09q0qRJys7O1nXXXafhw4e71J6eAADUZRTKGtayZUt17NjR0Glvu91u+JZBVWU2m/X+++9r79696tixoxYvXqzAwEC9//77RkcDAKDOo1AawGKxaPny5YY9Hebw4cPKz893mxHK87Vq1Urbt2/XRx99JLPZrHvvvVft2rXTrl27jI4GAECdRaE0gMViUU5Ojr777jtDrn/uDm93GqG80Pjx43Xy5EmNHj1au3btUvv27TV+/HhZrVajowEAUOdQKA3Qo0cPNWrUyLBp76ysLHl7eysiIsKQ6zuLt7e3Pv/8c23btk2tWrXSxx9/rMDAQM2bN8/oaAAA1CkUSgN4enpq4MCBhhXKzMxMRUVFydPT05DrO1unTp20d+9evfnmmyotLdWYMWN07bXXKjs72+hoAADUCRRKg1gsFmVkZOjo0aM1fm13usO7Kh566CHl5eXJYrHop59+UqtWrTR58mTD1qoCAFBXUCgNMmjQIJlMJq1YsaLGr31uD8rayM/PT19++aW2bNmiZs2a6e2331ZwcLC+/PJLo6MBAFBrUSgNEhISovj4+Bqf9v7111915MiRWjlCeb64uDgdOnRIL774ogoKCnTLLbeoR48eysnJMToaAAC1DoXSQBaLRatXr1ZJSUmNXTMrK0uSe9/hXRVPPvmkcnJylJCQoE2bNql58+Z64oknmAYHAMCJKJQGslgsys/P14YNG2rsmucKZVRUVI1d02iNGjXSunXr9NVXXykoKEgzZ85Us2bN9PXXXxsdDQCAWoFCaaBrr71WzZo1q9Fp78zMTLVs2VL+/v41dk1X0a9fPx09elT/7//9P+Xm5iohIUE33nij4c9VBwDA3VEoDWQymTRkyJAaLZS19Q7vK2U2m/Xyyy/r8OHDio+P17p16xQSEqL/+Z//MToaAABui0JpMIvFop07d2rv3r01cr3afId3VYSGhurbb79VcnKy/Pz8NG3aNIWFhSk9Pd3oaAAAuB0KpcFuuukmeXl51cgoZUlJifbu3VunRygvlJiYqLy8PD3wwAM6fPiwrr/+eiUmJqqwsNDoaAAAuA0KpcEaNGigvn371kih3LNnj8rKyhihvIDZbNb//u//at++fercubOWLl2qoKAgvf3220ZHAwDALVAoXYDFYtHXX3+tM2fOVOt1zt3hzQjlxbVs2VI//fSTPv30U3l6emry5MmKjIzUjh07jI4GAIBLo1C6AIvFopKSEn311VfVep3MzEwFBQUpJCSkWq/j7saOHatTp05p3Lhx2rdvn2JiYjRmzJga3S8UAAB3QqF0AW3btlXbtm2rfdr73B3eJpOpWq9TG3h6euqTTz7Rjh07FBkZqXnz5ikwMFCffPKJ0dEAAHA5FEoXYbFYtHz5ctnt9mq7Bnd4V110dLR27dql2bNny2az6c9//rM6deqkn3/+2ehoAAC4DAqli7BYLPrll1/0008/Vcv57XZ7nd+D0hH33XefTp48qaFDh2rHjh1q06aN7r33Xh7hCACAKJQuo0+fPqpfv361TXsfOnRIBQUFjFA6wNfXV4sXL9Z3332nsLAwvf/++woMDNTixYuNjgYAgKEolC7C29tb/fv3r7ZCyR3eztOlSxcdOHBAf/vb31RUVKThw4crLi5OR48eNToaAACGoFC6EIvFom+//VYnTpxw+rkzMzPl4+OjiIgIp5+7rnrsscd0/Phx9e/fXxkZGWrRooUeffRRpsEBAHUOhdKFDBkyRHa7XStXrnT6ubOyshQVFSUPDw+nn7sua9iwoVavXq20tDSFhITo73//u0JDQ7VmzRqjowEAUGMolC6kWbNm6tKlS7VMe3OHd/Xq1auXjhw5omnTpunUqVMaMGCA+vbtq7y8PKOjAQBQ7SiULsZisWjlypWyWq1OPS93eNeMl156SUePHlXPnj21fv16NWnSRNOnTzc6FgAA1YpC6WIsFotOnTqlTZs2Oe2cp06d0tGjRxmhrCGNGzfWhg0btHz5cjVs2FDPPfecmjdv7tSfKQAAroRC6WLi4uIUEhLi1Glv7vA2xuDBg3X8+HH99a9/1bFjx9SjRw8NHjy42p/ZDgBATaNQuhiz2azBgwc7tVBmZmbKZDIpKirKaefElTGbzfrHP/6hAwcO6LrrrtPKlSsVHBys119/3ehoAAA4DYXSBVksFm3fvl3Z2dlOOV9WVpZatmwpPz8/p5wPVdeiRQt9//33+uKLL+Tj46NHHnlErVq10tatW42OBgCAwyiULmjAgAHy8PBw2ihlZmYm090uYuTIkcrLy9Ndd92lAwcO6E9/+pNGjhyp4uJio6MBAHDVKJQuqFGjRurVq5fTCmVWVhY35LgQT09PffDBB9q1a5eio6O1YMECBQYGas6cOUZHAwDgqlAoXZTFYtG6det09uxZh85TXFysvXv3MkLpgiIjI/Xvf/9b//d//ydJmjRpkqKjo7V7926DkwEAUDUUShdlsVh09uxZpaamOnSePXv2yGazMULpwiZOnKhTp05p5MiRysrKUrt27XTXXXc5fS9SAACqC4XSRUVHRysiIsLhae/MzExJbBnk6ry9vfXFF1/op59+UkREhD766CMFBQXpiy++MDoaAACXRaF0USaTSRaLRcuWLZPdbr/q82RlZSk4OFghISFOTIfq0rlzZ+3bt0+vv/66SkpKNGrUKF133XU6dOiQ0dEAALgkCqULs1gsOnDggP79739f9Tl45KJ7evjhh3XixAkNHjxYP/74o1q2bKm//vWvstlsRkcDAKASCqULu+GGG1SvXj2Hpr0zMzNZP+mm6tevr+XLl+ubb75R06ZNNWvWLDVu3FjLly83OhoAABVQKF1YvXr1dOONN151obTZbIxQ1gLdu3fXL7/8ounTpys/P18Wi0U9e/bUiRMnjI4GAIAkCqXLs1gs2rhxo06ePFnlzx46dEiFhYWMUNYSzzzzjI4dO6a+ffuWj1o++eSTRscCAIBC6eqGDBmisrIyrVmzpsqfzcrKksQd3rVJUFCQvv76a61du1aNGjXSjBkz1LRpU61fv97oaACAOoxC6eLCw8PVqVOnq5r2zszMlK+vr1q2bFkNyWCkG2+8UTk5OZo6dapOnDihvn37qn///jp9+rTR0QAAdRCF0g1YLBatWLGiynf4ZmVlKSoqSh4eHtWUDEYym8165ZVXdOjQIcXFxWnt2rVq3LixXn75ZaOjAQDqGAqlG7BYLDp+/LjS09Or9Dnu8K4bmjZtqi1btmjx4sWqV6+eHn/8cYWHh+u7774zOhoAoI6gULqB7t27KzAwsMrT3tzhXbcMHTpUJ0+e1H333adDhw6pa9euGjp0qIqKioyOBgCo5SiUbsDT01MDBw6sUqE8efKkjh07xghlHWM2mzV79mzt27dPnTp1UnJysgIDA/XOO+8YHQ0AUItRKN2ExWLR999/ryNHjlzR8dzhXbdFRERo27Zt+vjjj+Xh4aEHH3xQUVFR5c92BwDAmSiUbmLQoEEymUxX/JSUzMxMmUwmRUVFVXMyuLI777xTeXl5uuOOO7Rnzx517NhR48aNk9VqNToaAKAWoVC6icaNG6tbt25XPO2dlZWliIgI1atXr5qTwdV5e3srKSlJ27dvV5s2bZSUlKRGjRopKSnJ6GgAgFqCQulGLBaL1qxZo+Li4ssem5mZyXQ3KujQoYN2796tt99+W1arVePGjVPnzp114MABo6MBANwchdKNWCwWnTlzRmlpaZc9NisrixtycFEPPvig8vLylJiYqG3btqlVq1Z64IEHqrzPKQAA51Ao3cif/vQnXXPNNZed9i4qKtK+ffsYocQl+fn5KTk5Wenp6WrRooVmz56toKAgJScnGx0NAOCGKJRuxGQyaciQIZctlHv27JHNZmOEEpfVtWtXZWdn63/+539UWFiooUOHKj4+XkePHjU6GgDAjZjsdrvd6BC4csnJyRo6dKgyMzN16tQpbdu2TXfddZeKi4v1yCOPKDAwUPn5+frf//1f7du3T61atTI6MtzE6dOnNXz4cH311Vfy8PDQI488opkzZ8ps5u+dAIA/RqF0IydPnlRycrLuvvtu+fr66uzZs5KknTt3KiAgQE2bNpXJZNL5P9KQkBC98sorGj9+vFGx4WbWr1+vkSNHKicnRyEhIZo3b5769etndCwAgAtj6MFNfPnll2rcuLHuuusuSSovk56enoqIiFCTJk0UGxurC/9+cPz4cXl6etZ4XrivPn366MiRI3riiSeUl5enG2+8UQkJCTp16pTR0QAALopC6Sbat2+vBg0ayGw2VyiNUVFR8vb2liSNHDmywvSkh4eHbrvtNt1xxx01nhfuzWw2a8aMGTp8+LC6d++ur7/+WiEhIXrxxReNjgYAcEEUSjcRGRmpNWvWyMfHRyaTSdJv/9OPjY0tP2bYsGHlW7+YTCaFhobq/fffLz8eqKrQ0FB98803WrZsmRo0aKCnn35aLVq00ObNm42OBgBwIRRKNxIXF6dly5aVT2Hb7XZ17ty5/P2oqCi1bt26/L3PP/9cgYGBhmRF7TJkyBCdOHFCkydP1pEjR9StWzdZLBYVFhYaHQ0A4AIolG4mISFB8+fPL7/55vxCKUndunWTJD3wwAPq27evERFRS5nNZs2aNUs///yzrr32Wi1fvlxBQUGaNWuW0dEAAAbjLm83NX36dL344os6ePCgGgQ21v7cApVYbTq4/2e9NfNZfblkYfnaSqA6/POf/9SkSZN05swZtW7dWsnJyerUqZPRsQAABqBQuqndx/KVtDlbqTtzlJ1XqPN/iCZJ4UF+SmgXqrHx4WrbpIFRMVHLWa1WTZo0SR9//LHsdrtGjRqljz/+mL/MAEAdQ6F0MwfzCjVt8Tal7TkhD7NJZbZL//jOvd87srFmDItRWJBfDSZFXbJz507deuut2rlzp/z8/PTWW2+Vb3EFAKj9KJRuZF56tp5N2SGrzf6HRfJCHmaTPM0mTU/sqNFx4dWYEHXde++9p4cfflhnz55Vhw4dlJKSojZt2hgdCwBQzSiUbuKt1N16dfUuh88zdUCUJie0dUIi4OKKioo0duxYLVq0SCaTSXfffbdmz57NBvsAUItRKN3AvPRsPb5om9PO9/LwGI1ipBLV7Mcff9TQoUN14MABNWzYUB988IFuu+02o2MBAKoBhdLFHcwr1E2v/0vFVttljy3K3q7TWxap5Ng+lRX+KrOvv7xDWyug52j5tuhQfpyPp1lrp/RlTSVqxN///nc98cQTKikpUZcuXbR06VI1b97c6FgAACdiH0oXN23xNlmvcL1k6clfJJNZDa4brKABD6jh9cNVVnBSx5Ie19l935UfZ7XZNW2x80Y8gT/yyCOPKDc3V4MGDdL333+vsLAwTZkypfypTgAA98cIpQvbfSxf/d9Y79A5bKVF+mX2JHmHtlaTUc9XeG/tlD6KDGVLIdScjRs3auTIkTpy5IiCgoL02WefaeDAgUbHAgA4iBFKF5a0OVseZpMKsjbowMybVZRdeVQx/4cVOjDzZpUc33/Rc5i9fOXhFyBbcUGF1z3MJn36bXZ1xAYuqWfPnjp8+LCeffZZnT59WoMGDVLv3r114sQJo6MBABxAoXRhqTtzVGazq16bOJm866kga0OlYwoy0+TVOFzeIRHlr9mKC1VW+KtKcw/q5L/mqvT4Afm2/FOFz5XZ7ErdlVPdXwG4qOeee07Hjh1T7969tWHDBjVr1kzPPPOM0bEAAFeJQumizhRblZ1XKEkye/moXuT1KszaKLutrPyYsjMnVXxwu/yie1f47PElM3XozbE6/P4DOr1lsepfO0iNeo6udI3s3EIVFFur94sAlxAUFKT169dr9erVCggI0AsvvKBmzZpp48aNRkcDAFQRhdJFHcgtqPA4Rf/2vWUrPFVh2rtg5wbJbpN/dJ8Knw28YYJCR72g4MF/lU/z9rKXWSsU0XPskvbnFlR6HahJ/fv3V05OjqZMmaKcnBz16tVLAwcO1JkzZ4yOBgC4QhRKF1VywTZB9VrHyuTjr8LMtPLXCjPT5BXaWl5B11Q41rtJa9VrdZ3q/2mAmox+QSVHdil32etXdB3ACGazWX//+9918OBBxcbGavXq1QoODtZrr71mdDQAwBWgULoob8+KPxqTp5f82nZT4a5NstvKZM0/oeJDmfK/YLr7QiYPL9VrG6/CnZtkKy2u/L6dQgnX0bx5c2VkZGjBggXy9fXV1KlTFRERoR9//NHoaACAP0ChdFERwf4yXfCaf3Rv2c6eVtH+H1WYtVGSvdL6yYuxl5ZIsstecrbi63a74ju0UufOnTVu3Di9/PLLWrFihQ4dOiR2k4KRbrvtNp08eVKTJk1Sdna2rrvuOg0fPlxFRUVGRwMAXAT7ULqwvq+k6sDvN+ZIkr3MqkOz7lS9tvEqzT0o2e1qNv7v5e+XFZySh3+jCuewFZ3R4Q8ekiS1ePDDCu818TNpfPB+bd26Vdu2bdO2bduUn58vSQoMDFRMTIw6d+5c/u9OnTqpfv361fRtgYv7+eefdcstt2jHjh3y9fXVP/7xD917771GxwIAnIdC6cKeS9mhTzYfUNl5T8rJXfGmCjLTZC8pUmC/u9Xw+mHl7x358L/k0aCxfJq3k9k/QGW/HteZbWtVdiZPjW/9f/Jv36v8WA+zSXfGt9RziR3LX7Pb7Tpw4EB5wTz37507d5Y/1aR169aVimZkZKQ8PDxq4HcEddncuXP14IMPqrCwUFFRUUpJSVG7du2MjgUAEIXSpV3sSTln9/+onHlPSTLpmgc/lGfDxuXv5X/3pQoy16s095BsxQUy+9aXT/N2ahg/XL5hnSqd/0qflFNUVKTMzMwKRXPr1q06duyYJMnX11cdO3asVDRDQ0Md+w0ALlBSUqLx48dr3rx5MplMuvPOOzVnzhx5enoaHQ0A6jQKpYu7c85mfbMvt8IopaM8zCb1aB2sTybGO3SenJyc8qnyc2Vz+/bt5evcQkNDKxTMmJgYdejQQfXq1XPG10Adtn37dt16663at2+f6tevr/fee09jxowxOhYA1FkUShd3MK9QN73+LxU7cXsfH0+z1k7pq7AgP6ed85yysjLt3bu30rT53r17Jf22PUxUVFSl0cyWLVvKbOYeMVTNrFmz9Nhjj6m4uFh/+tOflJKSovDwcKNjAUCdQ6F0A/PSs/X4osrP8b5aLw+P0ai4mv2f7pkzZ7Rjx45KRTMvL0+SVL9+fcXExFQomjExMQoMDKzRnHA/hYWFuv3227Vs2TKZzWbdf//9mjVrFn9BAYAaRKF0E2+l7tarq3c5fJ7HBrTTXxIinZDIcXa7XYcPH65QMLdu3arMzEyVlpZKklq0aFFp2rxdu3by9vY2OD1cTXp6uoYNG6ZffvlFjRo10ieffKKbb77Z6FgAUCdQKN3IvPRsPZuyQ1abvUprKj3MJnmaTXo+sWONj0xejdLSUu3cubNS0Tx48KAkycvLS+3bt69UNK+55hqZTBfu3om65qWXXtL06dNVWlqqbt26KTk5mRvEAKCaUSjdzMG8Qk1bvE1pe07Iw2z6w2J57v3ekY01Y1hMtayZrEknT57U9u3bK02bn3vmM3tn4pxTp05p+PDhSk1NlYeHhx577DG99NJLTIMDQDWhULqp3cfylbQ5W6m7cpSdW6jzf4gmSeHBfkqICtW4buFXtDWQu7LZbDpw4ECl0cxdu3ZV2DvzwtFM9s6sG9atW6fRo0fr+PHjCgkJ0RdffKEbbrjB6FgAUOtQKGuBgmKr9ucWqMRqk7enWRHB/vL3qdv78p09e1aZmZmViuaFe2deWDSZGq19bDabnnjiCb322msqKytTv379tGjRIgUEBBgdDQBqDQol6pTL7Z3ZpEmTStPmHTp0kK+vr8HJ4aicnBwlJiZq8+bN8vLy0vTp0/XEE08YHQsAagUKJeq8i+2duXXrVu3bt08Se2fWNikpKfrzn/+sX3/9VS1atNCiRYsUFxdndCwAcGsUSuASzpw5o+3bt1eaNj958qQk9s50ZzabTZMnT9a7774rm82mW265RfPmzZOfn3vfuAYARqFQAlVwbu/MC+80P3/vzLCwsEqjme3atZOXl5fB6XGhAwcOKDExUVu3bpWPj49ee+01/eUvfzE6FgC4HQol4AQlJSXatWtXpaJ5/t6Z0dHRlYpm8+bN2TvTBSQlJem+++5TQUGB2rRpo+TkZHXs2NHoWADgNiiUQDW6kr0zL7zTnL0zjWG1WnXXXXcpKSlJkjRq1CjNnTuXpzIBwBWgUAI17NzemReWTPbOdA2ZmZm69dZbtXv3bvn5+Wn27Nm68847jY4FAC6NQgm4iHN7Z15YNM/tnVmvXj116NCBvTNryOzZszVlyhQVFRWpY8eOWrp0qVq1amV0LABwSRRKwMWd2zvz/KK5Y8eOi+6dea5ksnemcxQVFWnMmDFasmSJTCaTJk2apNmzZ7NdFABcgEIJuKGysjLt2bOnUtG8cO/MC0cz2Tvz6nz//fcaNmyYsrOz1bBhQ3300UcaNmyY0bEAwGVQKIFaJD8/Xzt27Ljk3pkNGjRQp06dKhXNRo0aGRvcTbzyyit66qmnVFJSoq5duyolJUXNmjUzOhYAGI5CCdRy7J3pXKdPn9bIkSO1evVqmc1mPfzww3rllVcY+QVQp1EogTqKvTMds2HDBo0cOVJHjx5VcHCwPv/8c/Xv39/oWABgCAolgArYO7NqnnrqKc2cOVNlZWXq3bu3lixZoqCgIKNjAUCNolACuKxze2deuDaTvTN/c+LECQ0dOlQbN26Up6ennnrqKT377LNGxwKAGkOhBHDVzu2deWHRrKt7Z65YsULjxo1TXl6emjVrpoULF6p79+5GxwKAakehBOB05/bOPL9obt++vU7snWmz2TRlyhS99dZbstlsGjRokObPn19nlwQAqBsolABqxJXunXnhTUDuunfmoUOHlJiYqB9++EHe3t6aOXOmpkyZYnQsAKgWFEoAhjpz5oy2b99+yb0z69evr5iYmApFMyYmRoGBgQYnvzLz58/XxIkTlZ+fr4iICCUnJ6tz586SfhvNfP311zVs2DC1bt26SuctKLZqf26BSqw2eXuaFRHsL38fz+r4CgBwWRRKAC7nSvbObNGiRYUpc1feO9Nqteree+/VRx99JLvdrhEjRujTTz/V559/rrvuukvx8fH65ptvLjsSu/tYvpI2Zyt1Z46y8wp1/h/eJknhQX5KaBeqsfHhatukQbV+JwA4H4USgNtw970z9+zZo8TERGVmZsrX11dms1mFhYWSpHfeeUf333//RT93MK9Q0xZvU9qeE/Iwm1Rmu/Qf2+fe7x3ZWDOGxSgsyK9avgsAnI9CCcDtudvemXPmzNF9992nsrKy8tfq16+vXbt2VXqU47z0bD2bskNWm/0Pi+SFPMwmeZpNmp7YUaPjwp2WHQAuhkIJoFZy5b0zt2zZovj4+AqvmUwmDR8+XAsWLCh/7a3U3Xp19S6Hrzd1QJQmJ7R1+DwAcCkUSgB1yuX2zvT19VXHjh2rde/Mm266SV999ZVMJpMu/CP46aef1vPPP6956dl6fNE2p13z5eExGsVIJYBqQqEEAFVt78xz/76avTPz8/M1a9Ys/fLLLzp+/LiOHDmiY8eO6eDBg+XXmvL0i1pm76Jiq63K3yN3xZs689Nq1WsTp9CR/3laj4+nWWun9GVNJYBqQaEEgEsoKyvT3r17K63N3Lt3r6Sr2zvzpZde0lNPPaXx48fr7bfflr+/f/l7Z8+e1ZtvvqnPjgTpjP81VVozKUnFR3br6CdTZTJ7yLflnyoUSg+zST1aB+uTifF/cAYAuDoUSgCoojNnzmjHjh2VimZeXp6kP947c8SIEVq0aJFMJpPatGmjRYsWqVOnTuXn3n0sX/3fWF/lTHa7Xcc+fUyewWEq2v+TvENaViiU56yd0keRoWwpBMC5KJQA4ATn9s68cG3mhXtn5ubm6uzZs5IkDw8PeXh46O2339bEiRNlMpn0XMoOfbL5gE7/O00nlsxUkzv+R77hMRWulf/DCuWtelvNJr4l75AISdKZbV8pb81sXXPvezry8aMXLZQeZpPujG+p5xI7Vv9vCIA6hccqAIATmEwmXXPNNbrmmms0aNCg8tdLS0u1c+dObdu2Td99951ee+218vfKyspUVlame+65R3PmzNGmTZuUujNHZTa76rWJk8m7ngqyNlQqlAWZafJqHF5eJm3FhTr19UcK6H67POpf+glCZTa7Unfl6DlRKAE4l/s9IBcA3IiXl5c6deqkMWPGaPTo0RXeO7c9kaenp7y8vHSm2KrsvN82Ojd7+ahe5PUqzNoou+0/+1WWnTmp4oPb5Rfdu/y1XzfOk8nTWw3jhl42T3ZuoQqKrU74ZgDwHxRKAKghu3b9Z0/JVq1a6b/+67/01VdfqaCgQOvXr9eB3IIKj1P0b99btsJTKsr+z/ZBBTs3SHab/KP7SJJK837R6YwUNUq4WybPyz920i5pf26Bs74SAEhiyhsAasyAAQM0Z84c9e7dW23bVt5ovOSCbYLqtY6VycdfhZlpqhdxrSSpMDNNXqGt5RV0jSQpb+178rmmvfzb97ziHBdeBwAcxQglANSQxo0b6+67775omZQkb8+KfySbPL3k17abCndtkt1WJmv+CRUfypT/79PdZ/f/pKJ936lh10RZTx0r/0f2MtmtxbKeOiZbceFlrwMAjmKEEgBcRESwv0xSxWnv6N4q2P6Vivb/qNLcQ5Ls5esny04flyQdXzyj0rnK8nP1y+yJCrzxHjWMu7X8ddPv1wEAZ6JQAoCL8PfxVHiQnw7k/WdU0TfiWpl9G6ggM02luQfl3SxKXo2a/vZey84KGf5kpfPkrnxLng1DFdDjdnn9fif4OeHBfvL34Y9+AM7FnyoA4EIS2oXqk80Hyp+SY/LwlF+77irITJO9pEiB/e4uP9YzIFSeAZWfMZ639n15+DeSX1T3Cq97mE1KiHLeM8kB4BwW0gCACxkbH17pkYt+0X1kL/ltM3S/9r0v9rErUmaza1y3cIfyAcDF8KQcAHAxd87ZrG/25Vb5Wd5/hGd5A6hOjFACgIuZMSxGnmaTE89ol6fZpBnDYi5/KABcBQolALiYsCA/TXfq87ZNCvp5rRqYS5x4TgD4DwolALig0XHhmjogyinnurWVWVnLPtD111+vzMxMp5wTAM5HoQQAFzU5oa1mDo+Rj6dZHlWcAvcwm+TjadbLw2P0j3sHKz09Xd7e3oqPj1dycnI1JQZQV1EoAcCFjY4L19opfdWjdbAkXbZYnnu/R+tgrZ3SV6PifrurOzIyUps2bVL//v01dOhQTZ8+XTYbj2AE4Bzc5Q0AbmL3sXwlbc5W6q4cZecWVniijkm/bVqeEBWqcd3CFRna4KLnsNlsmjFjhp555hklJibq448/VsOGDWskP4Dai0IJAG6ooNiq/bkFKrHa5O1pVkSwf5WegLN06VKNHTtWLVq0UHJy8iWfLw4AV4JCCQB1VFZWlm699VYdO3ZMn3/+uQYPHmx0JABuijWUAFBHtW/fXlu2bFGvXr1ksVg0c+ZMMcYA4GpQKAGgDgsICFBKSoqefPJJPfHEExo9erQKCgqMjgXAzTDlDQCQJC1cuFDjx49XmzZttGTJErVq1croSADcBCOUAABJ0m233aZvv/1WZ86cUdeuXfXVV18ZHQmAm6BQAgDKderUSenp6YqNjdXAgQP1xhtvsK4SwGVRKAEAFQQFBWn58uV65JFHNGXKFI0fP15nz541OhYAF8YaSgDAJX3++eeaOHGiOnTooMWLFyssLMzoSABcECOUAIBLGjNmjDZu3Kjjx48rNjZWaWlpRkcC4IIolACAP3TdddcpIyNDHTt2VL9+/fTOO++wrhJABRRKAMBlhYSEaPXq1XrwwQf14IMP6t5771VxcbHRsQC4CNZQAgCq5KOPPtL999+v6667TgsXLlTz5s2NjgTAYBRKAECVbdmyRcOHD5fNZtOiRYvUrVs3oyMBMBBT3gCAKrv++uuVkZGhVq1aqW/fvvrggw+MjgTAQBRKAMBVadq0qVJTUzVhwgRNnDhRkydPVmlpqdGxABiAKW8AgMPeffddPfTQQ+revbvmz5+v0NBQoyMBqEEUSgCAU2zYsEEjRoyQt7e3Fi9erNjYWKMjAaghTHkDAJyiV69eysjIUNOmTdWrVy8lJSUZHQlADaFQAgCcpkWLFlq/fr1GjRqlcePG6dFHH5XVajU6FoBqxpQ3AMDp7Ha7Zs2apUceeUQJCQmaN2+egoODjY4FoJpQKAEA1SY1NVUjR45Uw4YNtWTJEnXu3NnoSACqAVPeAIBqk5CQoIyMDAUEBJTfAQ6g9qFQAgCqVUREhDZu3KjExETdfvvtevLJJ1VWVmZ0LABOxJQ3AKBG2O12vfrqq3r88cc1aNAgJSUlqVGjRkbHAuAEFEoAQI1atWqVRo8erZCQECUnJys6OtroSAAcxJQ3AKBGDRw4UOnp6fL29lZ8fLySk5ONjgTAQRRKAECNi4yM1KZNm3TTTTdp6NChev7552Wz2YyOBeAqMeUNADCMzWbTjBkz9PTTT2vo0KH6+OOP1aBBA6NjAagiCiUAwHBLly7V2LFjFRYWpiVLlqht27ZGRwJQBUx5AwAMd8stt2jLli2yWq2Ki4vTihUrjI4EoAoolAAAl9C+fXtt2bJFvXr1ksVi0cyZM8UkGuAeKJQAAJcREBCglJQUTZs2TU888YRGjx6tgoICo2MBuAzWUAIAXNKCBQs0YcIEtWnTRkuWLFGrVq2MjgTgEhihBAC4pBEjRmjTpk06c+aMunbtqq+++sroSAAugUIJAHBZMTExSk9PV2xsrAYOHKg33niDdZWAC6JQAgBcWlBQkJYvX64pU6ZoypQpmjBhgs6ePWt0LADnYQ0lAMBtfPbZZ5o4caI6deqkRYsWKSwszOhIAMQIJQDAjdxxxx3auHGjcnJy1LVrV6WlpRkdCYAolAAAN9OlSxdlZGSoQ4cO6tevn9555x3WVQIGo1ACANxOSEiIVq9erQcffFAPPvig7r33XhUXFxsdC6izWEMJAHBrH374oe6//37FxsZq4cKFatasmdGRgDqHQgkAcHubN2/W8OHDZbfbtWjRInXr1s3oSECdwpQ3AMDtxcfH67vvvlOrVq3Ut29fffDBB0ZHAuoUCiUAoFZo2rSpUlNTNWHCBE2cOFGTJ09WaWmp0bGAOoEpbwBArfPuu+9q8uTJ6tGjh+bPn6/Q0FCjIwG1GoUSAFArbdiwQSNGjJC3t7cWL16s2NhYoyMBtRZT3gCAWqlXr17KyMhQkyZN1KtXLyUlJRkdCai1KJQAgFqrRYsWSktL06hRozRu3Dg9+uijslqtRscCah2mvAEAtZ7dbtesWbP0yCOPKCEhQfPmzVNwcLDRsYBag0IJAKgzUlNTNXLkSDVs2FBLlixR586djY4E1ApMeQMA6oyEhARlZGSoYcOG6t69uxYsWGB0JKBWoFACAOqUiIgIffPNN0pMTNTIkSP15JNPqqyszOhYgFtjyhsAUCfZ7Xa9+uqrevzxxzVo0CAlJSWpUaNGRscC3BKFEgBQp61atUqjR49WaGiolixZoujoaKMjAW6HKW8AQJ02cOBApaeny8vLS/Hx8UpJSTE6EuB2KJQAgDovMjJSmzZt0k033aRbb71Vzz//vGw2m9GxALfBlDcAAL+z2WyaMWOGnn76aQ0dOlQff/yxGjRoYHQswOVRKAEAuMDSpUs1duxYhYWFKTk5WZGRkUZHAlwaU94AAFzglltu0ZYtW2S1WhUXF6eVK1caHQlwaRRKAAAuon379tqyZYt69uypIUOG6OWXXxaTesDFUSgBALiEgIAApaSkaNq0aXr88cc1evRoFRQUGB0LcDmsoQQA4AosWLBAEyZMUGRkpJYsWaKIiAijIwEugxFKAACuwIgRI7Rp0ybl5+era9euWrdundGRAJdBoQQA4ArFxMQoPT1dXbp00YABA/TGG2+wrhIQhRIAgCoJCgrS8uXLNWXKFE2ZMkUTJkzQ2bNnjY4FGIo1lAAAXKXPPvtMEydOVKdOnbRo0SKFhYUZHQkwBCOUAABcpTvuuEMbN25UTk6OunbtqrS0NKMjAYagUAIA4IAuXbooPT1d0dHR6tevn2bPns26StQ5FEoAABwUGhqqNWvW6IEHHtADDzyg++67T8XFxUbHAmoMaygBAHCiDz/8UPfff79iY2O1cOFCNWvWzOhIQLWjUAIA4GSbN2/W8OHDZbfbtXjxYsXHxxsdCahWTHkDAOBk8fHxysjIUEREhPr06aMPP/zQ6EhAtaJQAgBQDZo1a6bU1FSNHz9ed999tx566CGVlpYaHQuoFkx5AwBQzd59911NnjxZPXr00Pz58xUaGmp0JMCpKJQAANSADRs2aMSIEfL29tbixYsVGxtrdCTAaZjyBgCgBvTq1UsZGRlq0qSJevXqpaSkJKMjAU5DoQQAoIa0aNFC69ev1+23365x48Zp6tSpslqtRscCHMaUNwAANcxut+vNN9/Uo48+qoSEBM2bN0/BwcFGxwKuGoUSAACDrFu3TrfffrsaNmyoJUuWqHPnzkZHAq4KU94AABikX79+ysjIUMOGDdW9e3ctWLDA6EjAVaFQAgBgoIiICH3zzTe65ZZbNHLkSD355JMqKyszOhZQJUx5AwDgAux2u1555RU9/vjjGjJkiD799FM1atTI6FjAFaFQAgDgQlauXKkxY8YoNDRUS5YsUXR0tNGRgMtiyhsAABcyaNAgpaeny8vLS/Hx8UpJSTE6EnBZFEoAAFxMZGSkNm3apJtuukm33nqrnn/+edlsNqNjAZfElDcAAC7KZrPppZde0jPPPKNhw4Zp7ty5atCggdGxgEoolAAAuLiUlBSNGzdOYWFhSk5OVmRkpNGRgAqY8gYAwMUlJiZqy5YtslqtiouL08qVK42OBFRAoQQAwA20b99eW7ZsUc+ePTVkyBC9/PLLYpIRroJCCQCAmwgICFBycrKmTZumxx9/XGPGjFFBQYHRsQDWUAIA4I4WLFigCRMmKDIyUkuWLFFERITRkVCHMUIJAIAbGjFihDZt2qTTp0+ra9euWrdundGRUIdRKAEAcFMxMTHKyMhQly5dNGDAAL3xxhusq4QhKJQAALixoKAgLV++XA8//LCmTJmiCRMm6OzZs0bHQh3DGkoAAGqJpKQkTZo0SZ06ddKiRYsUFhZmdCTUERRKAABqke+//15Dhw5VcXGxFi5cqF69ehkdCXUAU94AANQiXbp0UUZGhqKjo5WQkKDZs2ezrhLVjkIJAEAtExoaqjVr1uiBBx7QAw88oPvuu0/FxcVGx0ItxpQ3AAC12Icffqj7779fXbt21YIFC9SsWTOjI6EWolACAFDLbd68WcOHD5ckLVq0SPHx8QYnQm3DlDcAALVcfHy8MjIy1LJlS/Xp00cffvih0ZFQy1AoAQCoA5o1a6bU1FSNHz9ed999tx566CGVlpYaHQu1BFPeAADUMbNnz9ZDDz2knj17av78+QoJCTE6EtwchRIAgDooLS1NI0aMkK+vrxYvXqwuXboYHQlujClvAADqoN69eysjI0OhoaHq2bOnkpKSjI4EN0ahBACgjgoLC9P69et1++23a9y4cZo6daqsVqvRseCGmPIGAKCOs9vtevPNN/Xoo4+qX79+mjdvnoKCgoyOBTdCoQQAAJKkr776SqNGjVJAQICWLFmimJgYoyPBTTDlDQAAJEk33nij0tPT1aBBA3Xv3l0LFiwwOhLcBIUSAACUa9WqlTZu3Kibb75ZI0eO1JNPPqmysjKjY8HFMeUNAAAqsdvteuWVV/T4449ryJAhSkpKUkBAgNGx4KIolAAA4JJWrlypMWPGKDQ0VMnJyWrfvr3RkeCCmPIGAACXNGjQIG3ZskWenp66/vrrtXTpUqMjwQVRKAEAwB9q27atvv32W914441KTEzUCy+8IJvNZnQsuBCmvAEAwBWx2Wx66aWX9Mwzz2jYsGGaO3euGjRoYHQsuAAKJQAAqJKUlBSNGzdOYWFhSk5OVmRkpNGRYDCmvAEAQJUkJiZq8+bNKi0tVVxcnFatWmV0JBiMQgkAAKosOjpaW7ZsUY8ePTRkyBD97W9/E5OedReFEgAAXJVGjRopJSVFTzzxhP77v/9bY8aMUUFBgdGxYADWUAIAAIctWLBAEyZMUGRkpJYsWaKIiAijI6EGMUIJAAAcNmLECG3atEmnT59W165dtW7dOqMjoQZRKAEAgFPExMQoPT1d1113nQYMGKB//OMfrKusIyiUAADAaYKDg7VixQo9/PDDevjhhzVhwgSdPXvW6FioZqyhBAAA1SIpKUmTJk1Sp06dtGjRIoWFhRkdCdWEQgkAAKrN999/r6FDh6q4uFgLFy5Ur169jI6EasCUNwAAqDZdunRRRkaG2rdvr4SEBM2ePdvoSKgGFEoAAFCtQkNDtXbtWt1///164IEHdN9996m4uNjoWHAiprwBAECN+eCDD/TAAw+oa9euWrBggZo1a2Z0JDgBhRIAANSozZs3a/jw4ZKkRYsWKT4+3uBEcBRT3gAAoEbFx8crIyNDLVu2VJ8+ffThhx8aHQkOolACAIAa16xZM6WmpurPf/6z7r77bv31r39VaWmp0bFwlZjyBgAAhrHb7Xr33Xf10EMPqWfPnpo/f75CQkKMjoUqolACAADDpaWlacSIEfL19dXixYvVpUsXoyOhCpjyBgAAhuvdu7cyMjIUEhKiXr166bPPPjM6EqqAQgkAAFxCWFhY+Ujl2LFj9dhjj8lqtRodC1eAKW8AAOBS7Ha73nzzTT366KPq16+f5s2bp6CgIKNj4Q9QKAEAgEv66quvNGrUKAUEBGjJkiWKiYkxOhIugSlvAADgkm688Ualp6erQYMG6t69uxYuXGh0JFwChRIAALisVq1aaePGjbr55ps1YsQIPfXUU7LZbEbHwgWY8gYAAC7Pbrfrb3/7m5544gkNGTJESUlJCggIMDoWfkehBAAAbmPlypUaM2aMQkNDlZycrPbt2xsdCWLKGwAAuJFBgwZpy5Yt8vT01PXXX6+lS5caHQmiUAIAADfTtm1bffvtt7rxxhuVmJioF154gXWVBmPKGwAAuCWbzaYXX3xRzz77rIYPH66PPvpIDRo0MDpWnUShBAAAbi0lJUXjxo1TeHi4lixZosjISKMj1TlMeQMAALeWmJiozZs3q6SkRHFxcVq1apXRkeocCiUAAHB70dHR2rJli3r06KEhQ4bob3/7m5iErTkUSgAAUCs0atRIKSkpevzxx/Xf//3fuuOOO1RYWGh0rDqBNZQAAKDWmT9/viZMmKCoqCgtXrxYERERRkeq1RihBAAAtc7IkSO1adMm/frrr+ratavWrVtndKRajUIJAABqpc6dOys9PV3XXXedBgwYoH/84x+sq6wmFEoAAFBrBQcHa8WKFXr44Yf18MMP66677lJRUZHRsWod1lACAIA64dNPP9U999yjmJgYLVq0SC1atDA6Uq3BCCUAAKgTxo0bpw0bNujo0aOKjY3Vhg0byt87cuSI/vnPfxqYzr1RKAEAQJ0RGxurjIwMtW/fXgkJCZo9e7YKCws1YMAAjR49Wps3bzY6oltiyhsAANQ5paWlmjJlit5++221bt1a+/fvl8lkUmJiohYtWnTZzxcUW7U/t0AlVpu8Pc2KCPaXv49nDSR3TRRKAABQZ40cOVILFiwo/7XJZNKuXbsu+jzw3cfylbQ5W6k7c5SdV6jzC5RJUniQnxLahWpsfLjaNmlQ/eFdCIUSAADUSatWrdLgwYMrbCXk4eGhe+65R++88075awfzCjVt8Tal7TkhD7NJZbZLV6dz7/eObKwZw2IUFuRXrd/BVVAoAQBAndSnTx+lpaXJ09NTVqu1/HUPDw8dOXJEISEhmpeerWdTdshqs/9hkbyQh9kkT7NJ0xM7anRceHXEdykUSgAAUCcdPXpUa9as0bfffqu0tDTt2LFDNptNkjRmzBj1uGe6Xl29y+HrTB0QpckJbR0+jyujUAIAAEgqLCzUd999p48++khNe96mpN3Oq0gvD4/RqFo8UkmhBAAAOM/BvELd9Pq/VGy1XdHxZ7auVe7yNy76XovJn8ijfqB8PM1aO6VvrV1TWXfvbwcAALiIaYu3yVqF9ZLnBPQeK8+AphVeM/v6S5KsNrumLd6mTybGOyWjq6FQAgAA/G73sXyl7TlxVZ+t17qrfJpdfK1kmc2utD0ntCcnX5GhtW9LIZ6UAwAA8LukzdnyMJskSQVZG3Rg5s0qyt5W6bj8H1bowMybVXJ8f4XXbcWFstvKLnpuD7NJn36b7fTMroARSgAAgN+l7swp3x6oXps4mbzrqSBrg3zDYyocV5CZJq/G4fIOiVDJkT2SpGOfT5O95Kzk4al6rboosN9EeQVdU/6ZMptdqbty9Jw61twXqiGMUAIAAEg6U2xVdl5h+a/NXj6qF3m9CrM2Vhh1LDtzUsUHt8svurckyeTlI/+YmxTU/36FDH9SAfG3qejATzr6yWOynj5e4RrZuYUqKLaqtqFQAgAASDqQW6ALb8Xxb99btsJTFaa9C3ZukOw2+Uf3+e2Y6N5qbHlY9WNulF9UdzXqc6dCb39etrP5+vWbf1Y4n13S/tyCav4mNY9CCQAAIKnkItsE1WsdK5OPvwoz08pfK8xMk1do6wrT2RfyDeso7+ZRKtr/0xVdx91RKAEAACR5e1auRSZPL/m17abCXZtkt5XJmn9CxYcy5f/7dPcf8WwYIltR/hVdx93Vvm8EAABwFSKC/WW6yOv+0b1lO3taRft/VGHWRkn28vWTf8R66qjMfgEVXjP9fp3ahkIJAAAgyd/HU+EXeZKNb8S1Mvs2UEFmmgoy18u7WZS8Gv1nA/Oywl8rfebs3nSVHN2jeq26VHg9PNhP/j61b5Od2veNAAAArlJCu1B9svlA+dZBkmTy8JRfu+4qyEyTvaRIgf3urvCZo59MlXeTNvJuGimzj79Kju3Vma1r5NEwRAE9bi8/zsNsUkJUaI19l5pEoQQAAPjd2PhwfbRpf6XX/aL76MxPqyWZ5Ne+d6X3zu5J19mff5C9tFge9QNV/08D1ajXGHn4B5YfV2aza1y38Gr+BsYw2e32qj+sEgAAoJa6c85mfbMvt8IopaM8zCb1aB1ca5/lzRpKAACA88wYFiNP88Vuz7l6nmaTZgyLufyBbopCCQAAcJ6wID9NT3Tu4xGfT+yosIvc8FNbUCgBAAAuMDouXFMHRDnlXI8NaKdRcbVz7eQ5rKEEAAC4hHnp2Xo2ZYesNnuV1lR6mE3yNJv0fGLHWl8mJQolAADAHzqYV6hpi7cpbc8JeZhNf1gsz73fO7KxZgyLqdXT3OejUAIAAFyB3cfylbQ5W6m7cpSdW6jzC5RJv21anhAVqnHdwhUZ2sComIagUAIAAFRRQbFV+3MLVGK1ydvTrIhg/1r5BJwrRaEEAACAQ7jLGwAAAA6hUAIAAMAhFEoAAAA4hEIJAAAAh1AoAQAA4BAKJQAAABxCoQQAAIBDKJQAAABwCIUSAAAADqFQAgAAwCEUSgAAADiEQgkAAACHUCgBAADgEAolAAAAHEKhBAAAgEMolAAAAHAIhRIAAAAOoVACAADAIRRKAAAAOIRCCQAAAIdQKAEAAOAQCiUAAAAcQqEEAACAQyiUAAAAcAiFEgAAAA6hUAIAAMAhFEoAAAA4hEIJAAAAh1AoAQAA4BAKJQAAABxCoQQAAIBDKJQAAABwCIUSAAAADqFQAgAAwCEUSgAAADiEQgkAAACHUCgBAADgkP8PHBA9+MNWQx4AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化图\n",
    "nx.draw(G, with_labels=True, pos=nx.spring_layout(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "939f1e25",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('v1', 2), ('v2', 4), ('v3', 3), ('v4', 4), ('v5', 1)]\n",
      "['v1', 'v2', 'v3', 'v4', 'v5']\n",
      "[('v1', 'v2'), ('v1', 'v3'), ('v2', 'v3'), ('v2', 'v4'), ('v3', 'v4'), ('v4', 'v2'), ('v4', 'v5')]\n"
     ]
    }
   ],
   "source": [
    "print(G.degree()) # 获取各个节点的度（出度和入度的和）\n",
    "print(G.nodes) # 获取节点\n",
    "print(G.edges) # 获取边"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "af0d2b34",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (0, 1)\t1\n",
      "  (0, 2)\t1\n",
      "  (1, 2)\t1\n",
      "  (1, 3)\t1\n",
      "  (2, 3)\t1\n",
      "  (3, 1)\t1\n",
      "  (3, 4)\t1\n",
      "[[0 1 1 0 0]\n",
      " [0 0 1 1 0]\n",
      " [0 0 0 1 0]\n",
      " [0 1 0 0 1]\n",
      " [0 0 0 0 0]]\n"
     ]
    }
   ],
   "source": [
    "# 邻接矩阵\n",
    "A = nx.adjacency_matrix(G)\n",
    "print(A)\n",
    "\n",
    "print(A.todense())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "7cf275f9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[2 0 0 0 0]\n",
      " [0 4 0 0 0]\n",
      " [0 0 3 0 0]\n",
      " [0 0 0 4 0]\n",
      " [0 0 0 0 1]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "# 度矩阵\n",
    "D = np.diag(list(dict(nx.degree(G)).values()))\n",
    "print(D)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "1a0ca906",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('v1', 0), ('v2', 2), ('v3', 2), ('v4', 2), ('v5', 1)]\n",
      "[('v1', 2), ('v2', 2), ('v3', 1), ('v4', 2), ('v5', 0)]\n"
     ]
    }
   ],
   "source": [
    "print(G.in_degree) # 节点入度数\n",
    "print(G.out_degree) # 节点出度数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2866e6bc",
   "metadata": {},
   "source": [
    "#### 4.赋权图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "d3726306",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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devWeumll/THH394cGIAAHxbTk6ObrnlFjVq1EjPP/+8fvrpp9IwyWKs5/lNQ1ni+6w8Lc044rGv1yemhrpFVavw65xOp1asWKHk5OQTWssRI0booosu4k9YAACcQX5+vhISEnT77bfr0KFDWrBggS655BJdd9116tGjh9XjBRy/C5SS50JlZcPkyf7444/Ss5bbt29Xq1atlJiYqNtuu03169d3w6QAAPiP4uJi2Ww2XXHFFWrbtq0mTJig9PR0vfPOO0pLS1OtWrX0f//3f2rXrp3VowYMv7nkXVa3qGoa1LSmwmyG228nZOj4mclBTWu6JUxKUv369fXggw9q69atWr58ubp27arHH39cMTExGjx4sJYvX86GOAAAf7LZjseXCy64QD/++KMkqbCwUNddd51q1qypiRMn6s4777RyxIDjlw1lidzCYi1KPaydhwplSC5tgJe8vmVkqPo1PvOZSXf4448/9OGHHyo5OZnWEgCAPxUWFmr58uVKS0vT3LlztWTJEvXs2VP79+9XUVGR6tatq5o1a6p+/fqaNGmS1eMGDL8OlNLxs4rbcwq09vc8ZR51yCapIkd1Sz4/pkawzo2qplaRoR493+h0OvXNN98oKSlJc+bMkWEYuv7665WYmKhevXpx1hIAEFCOHTumc845R7Vq1ZJhGPrhhx909913KyYmRjExMYqOjpbdblejRo1Us2ZNq8cNGH4fKMvKynNow75j2pGTryOO4//YhqSymczp/F+TWSPYUMvIMHVpEK6oasEen/dk+/btK20td+zYodatW5e2lvXq1bN6PAAAPOKTTz5RnTp1FB4erh49emjTpk1q27at1WMFtIAKlGUdKSzWb0cdyspzKL/IKYfTqWDDUFiQoahqwWpUPbjKL2tXltPp1PLly5WUlKRPPvmktLUcMWKELrzwQlpLAEDASElJUfPmzU+4ByXfBz0vYAOlv9i3b58++OADJScna+fOnWrTpo0SExN166230loCAPwWNzH3LgRKP3Fya2mz2UrPWtJaAgCAqkSg9ENZWVmlZy3Ltpa33Xab6tata/V4AAC4Vcl9KWEd/u37oaioKD3yyCPatm2bli5dqg4dOujRRx+V3W7XLbfcopUrV3JfSwCAzyssLFSrVq2UnJxs9SgBj0Dpx2w2my655BLNmDFD6enpGj9+vNasWaNevXrJNE298sorOnDggNVjAgBQKSEhIQoODtamTZusHiXgESgDRFRUlEaOHKnt27dryZIlSkhI0COPPFLaWq5atYrWEgDgc0zTJFB6AQJlgLHZbOrTp49mzpyp9PR0PfXUU1qzZo0uvPBCJSQk6NVXX1V2drbVYwIAUC4ESu9AoAxgDRs21KOPPlraWpqmqYcfflh2u1233nqrVq9eTWsJAPBqpmkqKytLf/zxh9WjBDQCJf7SWo4bN06rV69Wz549aS0BAF7NNE1JoqW0GIESJyhpLXfs2KGvvvpK7dq1K20tb7vtNlpLAIBXadmypUJCQgiUFiNQ4pRsNpsuvfRSzZo1S+np6XryySe1atUq9ezZU+3bt9drr71GawkAsFxISIhatWpFoLQYgRJn1bBhQ40aNUo7duzQ4sWL1aZNGz300EOlreW3335LawkAsAyLOdYjUKLcbDab+vbtq9mzZystLU1PPPGEVq5cqR49eqhDhw56/fXXdfDgQavHBAAEGNM09csvv1BuWIhAiUpp1KiRHnvsMe3cuVNffvmlWrdurQcffFB2u11DhgzRmjVr+B8bAOARpmlq//79ysrKsnqUgEWghEtsNpsuu+yy0tZy7NixWrFihS644AJ17NhRb7zxBq0lAKBKseltPQIl3Obk1rJly5Z64IEHZLfbNXToUFpLAECVaNGihUJDQwmUFiJQwu1KWss5c+YoLS1NY8aM0fLly2ktAQBVIjg4WK1btyZQWohAiSoVHR2txx9/XCkpKVq0aJFatGhxQmv53Xff0VoCAFzGpre1CJTwCJvNpssvv1yffPKJ0tLSNHr0aH399dc6//zz1alTJ7355pvKycmxekwAgI8qCZSUFNYgUMLjoqOjNXr0aKWkpGjhwoWKj4/X/fffr+joaA0bNkxr167lNwQAQIWYpqns7Gz99ttvVo8SkAiUsExQUJD69eunTz75RKmpqRo9erSWLVum8847T506ddJbb71FawkAKBc2va1FoIRXsNvtJ7SWzZs313333Se73a7bb7+d1hIAcEbx8fEKCwsjUFqEQAmvUtJazp07V6mpqXrssce0ZMkSnXfeeercuTOtJQDglIKCgtS2bVsCpUUIlPBadrtdY8aM0a5du7RgwQI1bdr0hNZy3bp1tJYAgFJseluHQAmvFxQUpP79++vTTz/V3r17NWrUKC1ZskTdu3dXly5d9Pbbb+vQoUNWjwkAsBib3tYhUMKnxMTEaOzYsdq1a5fmz5+vJk2a6J577lF0dLSGDx+u77//nt9IACBAmaapnJwcZWZmWj1KwCFQwicFBQXpiiuu0KeffqrU1FSNGjVKixcv1rnnnqsuXbronXfeobUEgADDprd1CJTweSWt5e7duzV//nzFxcXp7rvvlt1u1x133EFrCQABolmzZqpWrRqB0gIESviNktbys88+0969ezVy5Eh9+eWXOvfcc9W1a1daSwDwczabjU1vixAo4ZdiY2P1xBNPaPfu3Zo3b55iY2NPaC1/+OEHq0cEAFQBNr2tQaCEXwsKCtKVV16pzz//XHv37tUjjzyiRYsWqVu3buratauSkpJ0+PBhq8cEALgJm97WIFAiYMTGxurJJ5/Unj179MUXXygmJkZ33XWXoqOjlZiYqPXr11s9IgDARaZp6vDhw0pLS7N6lIBCoETACQoK0oABA/T5559rz549evjhh7VgwQKdc8456tq1q5KTk2ktAcBHseltDQIlAlrjxo01btw47dmzR59//rnsdrv+7//+T3a7XSNGjNCGDRusHhEAUAFNmjRR9erVCZQeRqAEJAUHB2vgwIH64osvtGfPHj300EOaP3++unbtqnPOOUcTJ06ktQQAH2Cz2dSuXTsCpYcRKIGTnNxaNmrUSHfeeSetJQD4CDa9PY9ACZxGSWs5b9487d69Ww8++GBpa9mtWzdNnDhRubm5Vo8JADiJaZravHmziouLrR4lYBAogXKIi4vTU089pT179uizzz5Tw4YNNWLECEVHR+vOO+/Ujz/+aPWIAIA/maapI0eOKDU11epRAgaBEqiA4OBgXXXVVZo3b5727Nmjf/7zn/riiy/UpUsXdevWTe+++y6tJQBYjE1vzyNQApUUFxen8ePHa+/evfr0008VFRWlxMTE0k3xn376yeoRASAgxcXFKSIigkDpQQRKwEXBwcG6+uqrNX/+fO3evVsPPPCAPv/8c3Xu3Fnnnnuu3nvvPVpLAPAgwzBYzPEwAiXgRk2aNDmhtaxfv77uuOMOWksA8DACpWcRKIEqUNJaLliwQLt379b999+vzz77TJ07d1b37t313nvv6ciRI1aPCQB+yzRNbdmyhU1vDyFQAlWsSZMmevrpp5Wamqq5c+eqXr16uuOOOxQdHa27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kNq2bUugrAACJQAgYJW0lps2bdLKlSt1/vnn68knn1RsbKz+8Y9/aOnSpbSWAapkMQflQ6AEAAQ8wzDUs2dPTZ48WZmZmXrhhRe0ceNGXXrppWrdurVeeOEFWssAw6Z3xRAoAQAoo27dunrggQe0efNmrVixQt27d9cTTzxR2louW7aM1jIAmKapQ4cOKT093epRfAKBEgCAUzAMQxdeeKGmTJmijIwM/fvf/9bGjRvVp08ftW7dWi+++KL27dtn9ZioIjzTu2IIlAAAnEW9evX0z3/+84TWcuzYsYqJidENN9ygr7/+mkujfqZp06aqXr06gbKcCJQAAJTTqVrLn376SZdccgmtpZ+x2WxselcAgRIAgEooaS23bNmib775Rt26ddOYMWMUGxurG2+8kdbSD7DpXX4ESgAAXGAYhnr16qWpU6cqIyNDzz//vH788cfS1vKll17SH3/8YfWYqATTNLV582b+YFAOBEoAANykfv36evDBB7VlyxYtX75c55xzjkaPHq2YmBjdeOONWr58OeHEh5imqdzcXKWmplo9itcjUAIA4GaGYeiiiy7StGnTlJGRoeeee04bNmzQxRdfrDZt2mjChAm0lj6ATe/yI1ACAFCF6tevr4ceekhbt27V119/ra5du+rxxx9XTEyMBg8erG+++YbW0kvFxcWpRo0aBMpyIFACAOABhmGod+/eJ7SW69evV+/evdW2bVu9/PLLtJZexmazqV27dgTKciBQAgDgYSe3lp07d9aoUaMUExOjm266idbSi7DpXT4ESgAALFLSWk6fPl0ZGRl69tln9f3335/QWu7fv9/qMQNayaY3j9s8MwIlAABeoEGDBnr44Ye1bds2LVu2TJ06ddKoUaNkt9t10003acWKFbSWFjBNU0ePHtXevXutHsWrESgBAPAihmHo4osv1scff6yMjAw988wzWrdunS666CK1a9dO//nPf2gtPSghIUESm95nQ6AEAMBLNWjQQI888oi2bdumpUuXqmPHjnr00UcVExOjm2++WStXrqS1rGKxsbGqVasWgfIsCJQAAHg5m82mSy65RB9//LHS09P19NNPa+3aterVq5dM09Qrr7yiAwcOWD2mXzIMg03vciBQAgDgQ6Kiok5oLdu3b6+RI0fKbrfrlltuobWsAmx6nx2BEgAAH1TSWs6YMUPp6ekaP368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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 创建一个赋权图\n",
    "G = nx.Graph()\n",
    "\n",
    "# 添加带权边\n",
    "G.add_edge('A', 'B', weight=3)\n",
    "G.add_edge('B', 'C', weight=4)\n",
    "G.add_edge('C', 'A', weight=2)\n",
    "\n",
    "# 绘制图形\n",
    "pos = nx.spring_layout(G)  # 选择一个布局算法\n",
    "nx.draw(G, pos, with_labels=True, font_weight='bold', node_size=700, node_color='skyblue', font_color='black')\n",
    "\n",
    "# 添加权重标签\n",
    "labels = nx.get_edge_attributes(G, 'weight')\n",
    "nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "27ea3d2d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (0, 1)\t3\n",
      "  (0, 2)\t2\n",
      "  (1, 0)\t3\n",
      "  (1, 2)\t4\n",
      "  (2, 0)\t2\n",
      "  (2, 1)\t4\n"
     ]
    }
   ],
   "source": [
    "print(nx.adjacency_matrix(G))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8d365329",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "deep_learning",
   "language": "python",
   "name": "deep_learning"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
